文献(pdf)管理ソフトウエアについて

これまでMendeleyを使っていたが、色々と不満を抱いていた。

  • ライブラリの扱いが謎
    • 独自のライブラリ用フォルダを(watch-dog folderとは別に)作ってそこにpdfをダウンロードし始める
    • そのせいか文献が被ることがある
    • 他のマシンに移行するときに非常に不便
    • (無料版では)ライブラリのサイズに制限がある
  • 文献を検索しにくい
  • 他のデバイスで作成したアノテーション情報が正しく表示されない
  • 時々異常動作する

そこで、MacBookProを変えてMendeleyライブラリの重複を一掃したことでアノテーションなどが白紙に戻ったことを期に、ReadCubeを使ってみることにした。

こちらも基本的にはフォルダ(リストと呼んでいる)分けとタグ機能(Pro版のみ)による管理のようだが、Proにすると文献をグラフで表現してくれる機能もあるとか?(なかった。。) trialもできるみたいなので、ちょっと試してみてもしよかったら移行したい。

一番大事な点はライブラリの共有方法だが、どうやら無料版ではローカルのPDFをインポートするだけで、Pro版になるとunlimited cloud syncができるらしい。ライブラリ管理がまともであればPro版にしても構わないかもしれない。今後iPadで論文を読むことがあればだが。最近は印刷して紙で読むのもありかなと思いつつある。

使ってる感じ

  • UIが良い
  • recommendationも良い
  • プレプリント系だとreference情報を付けてくれないことが多く、また、そういった場合にmanualで入力するのが少しやりにくい
  • ライブラリの扱いはまだよく分からない
  • タグの用途としては、favoriteの拡張といった感じか。「輪講用」とか、「ASAP」とか?
    • タグの使い方(note中に"#“を先頭にして記述)が分かりにくい
  • 今開いているpdfがどのリストに属しているのかが表示されず、同じリストから複数のpdfを開きたいときなどに不便

ReadCubeのライブラリの扱いについて

  • Preferencesから指定
  • cloudにあるがローカルにないファイルは指定したディレクトリにダウンロードされる
  • cloudからダウンロードした後、ライブラリのディレクトリを変更しても新しいディレクトリにはダウンロードされない
    • -> 単純にディレクトリを見ているだけではなく、ちゃんとファイルを比較している?
  • ブラウザからだと日本語pdfが表示されないのでローカルAppを使うことにはなりそう
  • ボタン1つでReadCubeに追加できるのは良いが、普通にダウンロードしてもそこまで手間はかからなさそうだしディレクトリ区別もできる

タグの使い方案

  • リストは分野ごとに
  • タグにはpdfの性質を付与
    • book, poster, slide, asap
    • 適当に好きな言葉を適宜付けておけば後から探しやすい
  • favoriteは読んだものに付けていくか

Submitting (PacBio data) to SRA

How can I submit my (metagenomic) PacBio raw data (*.bax.h5) to the SRA database?

Read the quick guide

Data requirement (PacBio RS II)

Submission of data from the RS II instrument requires one (1) bas.h5 file and three (3) bax.h5 files. Do not link more than one PacBio RS II to an SRA run and please do not change the bax.h5 files names from those indicated in the bas.h5 file.

Submitting steps

  1. Login to or sign up for an NCBI account
  2. Register your project and biological samples:
  3. Create your SRA data submission and upload sequence data files:

    • Submit SRA metadata - information that will link your project, samples/experiments and file names
    • Upload sequence data files in SRA submission portal
  4. If you have already prepared all data for uploading, you can register BioProject and BioSample while creating SRA; that is, you do not have to use BioProject/BioSample submission portal.

  5. You must register BioProject and BioSample before creating SRA if you want to get only the Accession number (without uploading sequence data).

What are accession numbers?

  • SRA (SUBMISSION)
    • SRP# (STUDY) — PRJNA# in BioProject
      • SRS# (SAMPLE) — SAMN# in BioSample
        • SRX# (EXPERIMENT)
          • SRR# (RUN)

We recommend using SRP# in publications.

All submissions have a SUB#. The SUB# is non-public identifier that is used by software for tracking purposes.

On the human metagenomic sample

Human metagenomic studies may contain human sequences and require that the donor provide consent to archive their data in an unprotected database. If you would like to archive human metagenomic sequences in the public SRA database please contact the SRA and we will screen and remove human sequence contaminants from your submission.

  • I removed putative human genomic sequences by myself, but they can do it instead?

See also:

Register BioProject and BioSample (original doc)

Registering project and biological samples at the NCBI BioProject and the BioSample databases is a prerequisite for any public SRA submission. The BioProject and BioSample databases store data that relate to organizational and biological aspects of sequencing experiments.

BioProject

BioProject submission portal -> “New submission” -> Follow the wizard –…

You don’t have to provide BioSample accession(s) or register your sample(s) within the BioProject submission wizard.

…–> “Submit”

To update an existing record or recent submission, please email (bioprojecthelp@ncbi.nlm.nih.gov) your request with your BioProject ID or Submission ID included. Do not create new submission to update an existing submission!

BioSample

BioSample is a record of biological isolate with unique physical properties. Biological and technical replicates (in most cases) should not be considered unique BioSamples.

BioSample submission portal -> “New submission” -> Follow the wizard –…

In Attributes section: download Excel template, fill it out, convert into tab-delimited text file, and upload the text file.

To update BioSample’s attributes, contact BioSample staff at biosamplehelp@ncbi.nlm.nih.gov.

…–> “Submit”

Create SRA (original doc)

The SRA metadata describes the technical aspects of sequencing experiments: the sequencing libraries, preparation techniques and data files.

Each EXPERIMENT has a unique combination of replicate number + library + sequencing strategy + layout + instrument model

RUN is simply a manifest of data file(s) that are derived from sequencing a library described by the associated EXPERIMENT

SRA submission portal -> “Command line upload options” -> “Request preload folder” (-> Choose either “Aspera command line upload” or “FTP upload” for the future uploading of files, and read it) -> Upload all files via Aspera/FTP –…

Each file must be listed in the SRA metadata table you uploaded. If you are uploading a tar archive, list each file name, not the archive name.

  • I uploaded .tar archives of .bax.h5 files for each EXPERIMENT, and used lftp command for FTP.

…–> “New submission” -> Follow the wizard

Upload data with Aspera

Submission Portal provides options for transferring your sequence files using FTP or Aspera command line (recommended for all submissions) and via browser-based HTTP/Aspera transfer protocol (recommended only for small submissions and small files).

Adobe製品で「ライセンスが切れている」と言われた時

Adobe Illustrator CC 2015を使っていたところ、突然「ライセンスが切れている」と言われた。

  1. Adobeのサイトに行き、ログイン
  2. 「グループ管理」->「デバイスライセンス」の「すべて」で目的の製品の「使用可能なライセンス」が1以上であることを確認
  3. 製品名をクリックすると「使用可能」なデバイスライセンスがあることを確認

デバイスを有効にする方法によると、どうやらライセンスの更新をしないといけないらしい。

ライセンスファイルの作成に従って手順を実行したところ、起動できるようになった。

ちなみに、Adobe製品のアップデートをする場合にもCreative Cloud Packagerから行う。さもないとトライアル版としてインストールされることになってしまう(以前一度やった)。

Nature投稿規定

基本的に http://www.nature.com/nature/authors/gta/2a_Manuscript_formatting.pdf を訳して、自分にとって重要と思われるものをピックアップしたもの。

論文の種類

  • word数にはreference, title, author list, acknowledgementを含まない

Article

  • 全体で5ページ以内
  • 50 references以内
  • スペース込みで75 characters以内のtitle
    • 数字、略語、頭字語、句読点を通常含まない
  • 150 words以内の独立したsummary
    • reference無し
    • 必須でない数字、略語、頭字語を含まない
    • 分野外の読者にも分かるように
    • 内容
      • 2-3 sentencesの基礎的な導入
      • 研究の背景と論理的根拠
      • ‘Here we show'またはそれに準じる語句で始まる主要な結論
      • 2-3 sentencesで一般的な文脈における発見の意義
  • 3000 words以内の本文
    • 500 words以内の背景
      • summaryと被ってもよい
    • 1-2段落のdiscussion
    • 6以内でそれぞれ40 charactersを超えない小見出しを付けてもよい
  • 5-6点程度の図表

Letter

  • 全体で4ページ以内
  • 30 references以内
  • スペース込みで90 characters以内のtitle
    • 数字、略語、頭字語、句読点を通常含まない
  • 200 words程度、300 wordsを超えない、本文に組み込まれたsummary
    • reference有り
    • 分野外の読者にも分かるように
    • 内容
      • 2-3 sentencesの基礎的な導入
      • 1 sentenceの'Here we show'またはそれに準じる語句で始まる主要な結論
      • 2-3 sentencesで一般的な文脈における発見の意義
    • summaryの例
  • 1500 words程度(summaryを除く)の本文
    • discussionはなるべく簡潔かつ繰り返しの無いように
  • 3-4点程度の小さな図表

論文の形式

  • double-spaced
  • 内容(contributions)
    • title
    • text
    • methods
    • references
    • Supplementary Information line (if any)
    • acknowledgements
    • author contributions
    • author information (containing data deposition statement, competing interest declaration and corresponding author line)
    • tables
    • figure legends
  • textとfiguresは30MB以下の単一のwordかPDFファイルにまとめる
    • figuresは文中に挿入されていても最後にまとめられていても良い
    • figure legendsは対応するfigureと一緒にする
    • 行番号を入れる
  • figureは通常1つ半ページ(600 words)程度
  • cover letterにページ数の概算を書く
  • co-authorsはアスタリスクで示して‘These authors contributed equally to this work’の脚注をaddress listの下に付ける
    • 4人以上のco-authorsの場合はauthor contributionsで述べる
  • addressは最初のページの脚注の最初に書く
  • 12ポイントのTimes New Romanが好ましい
  • wordの数式機能は通常の文字やsymbol fontで表示できない場合のみに使う

Methods

  • figure legendsの後の、textの最後に書く
  • 3000 words以内
  • 短い太字の見出しで構成
  • 追加のreferenceは本文のreferenceの番号に続けて最後に記述する
  • 図表を含めることはできない

References

  • text, tables, boxes, figure legends, online-only methods, Extended Data tables and Extended Data figure legendsの順に番号を振る
  • リンクを含めない
  • publishまたはacceptされた論文、およびarXivやbioRxivにアプロードされたものだけ含め、それ以外は本文に著者リストとともに書く
  • authorsが6人以上の場合はfirst author + ‘et al.'とする

End notes

  • End notesの例
  • ‘Supplementary Information is linked to the online version of the paper at www.nature.com/nature .'と(ある場合は)記述する
  • Acknowledgements, Author Contributions and Author Information (data depositionをURLとaccession numberと共に)

Tables

  • それぞれ別のページに縦向きで
  • 短い1行の太字のタイトル
  • 説明はdouble-spaced

Figure legends

  • 短いタイトル
  • 手法の詳細を含まない
  • methodsを伴う場合は1つのfigureあたり100 words以下で、figure全部で500 words以下
  • methodsを伴わない場合は1つのfigureあたり300 words以下で、figure全部で800 words以下

Figures

  • figure中の文字は先頭を大文字に、それ以外を小文字にして、ピリオドは無し

Extended Data

  • 10点まで
  • titleとlegendは本文と同じファイルに含めて、data本体は別に送る
  • 本文中でreferする

Supplementary Information

  • figureを含めない
  • tableはデータ量の関係などでextended data tableにふさわしくないと判断された場合にのみ含める
  • 本文中でreferする

方針

今までは覚えておきたいトピックや小ネタなどをKobitoに蓄積/Qiitaに投稿していたが、

  • Qiitaだとプログラミング関係の話(研究など)やコードを書きにくい
  • Qiitaは短すぎるエントリーに向いていない
  • Kobitoだと検索機能が物足りない、PDFの埋め込みができない
  • Evernoteは大げさすぎる

などの理由から、ブログ形式が良いのではないかとの判断に至った。

なので、今後はこちらに移行したい。

  • まとまった一連のプログラミング関連の話
  • 個人的な研究の進捗状況などの細かい話

などは今まで通りKobito/Qiitaを使う予定。

SRM674 Div2 Medium

整数の組の点集合が与えられて、任意のxy軸を設定したときに両軸上に乗っている点の数の最大値を求める。 点の数の最大値が50なので全探索で大丈夫。

任意の2点で片方の軸を固定した後、追加でもう1点指定すれば両方の軸が固定されるので、 固定された軸に対して全点がそれぞれ軸上にあるか判定していけばOK。

コードはハンドルネームHalfSummer11さんのものを少し改変(軸に乗っているかどうかの判定の1つ目の式を変更)して引用。

int bestShot(vector <int> x, vector <int> y)
{
    int n = x.size(), ans = 0;
    if (n <= 2) return n;
    for (int i = 0; i < n; ++i)
        for (int j = i + 1; j < n; ++j)
            for (int k = 0; k < n; ++k){
                if (k != i && k != j){
                    int cnt = 0;
                    int x1 = x[i], y1 = y[i], x2 = x[j], y2 = y[j], x3 = x[k], y3 = y[k];
                    for (int p = 0; p < n; ++p){
                        int xx = x[p], yy = y[p];
                        if ((1ll * (x2 - x1) * (yy - y1) - 1ll * (y2 - y1) * (xx - x1) == 0) || (1ll * (x3 - xx) * (x2 - x1) + 1ll * (y3 - yy) * (y2 - y1) == 0)) ++ cnt;
                    }
                    ans = max(ans, cnt);
                }
            }
    return ans;
}

SRM674 Div2 Easy

与えられた2つの集合が全単射かどうか判定。

struct RelationClassifier {                                                                                                                                                                                     
    vector<int> domain;                                                                                                                                                                                         
    vector<int> range;                                                                                                                                                                                          
    string isBijection(vector<int> _domain, vector<int> _range) {                                                                                                                                               
        domain = _domain, range = _range;                                                                                                                                                                       
        multiset<int> d, r;                                                                                                                                                                                     
        if (domain.size() != range.size() ) {                                                                                                                                                                   
            return "Not";                                                                                                                                                                                       
        }                                                                                                                                                                                                       
        REP(i, domain.size()) {                                                                                                                                                                                 
            d.insert(domain[i]);                                                                                                                                                                                
            r.insert(range[i]);                                                                                                                                                                                 
        }                                                                                                                                                                                                       
                                                                                                                                                                                                                
        REP(i, domain.size()) {                                                                                                                                                                                 
            if(d.count(domain[i]) > 1 || r.count(range[i]) > 1) {                                                                                                                                               
                return "Not";                                                                                                                                                                                   
            }                                                                                                                                                                                                   
        }                                                                                                                                                                                                       
        return "Bijection";                                                                                                                                                                                     
    }                                                                                                                                                                                                           
};

コードはGreedで生成しています。