Подсчет повторяющихся данных, удовлетворяющих условиям, и удаление данных

Образец файла загружен в MediaFile.

Справочная информация

Раздел 1. В образце файла "Лист1"

a.  Values in “Column A” are the original name. For example from Cell A1:
    “>hg19_refGene_NM_000392_0 range=chr10:101542463-101542634 5'pad=0 3'pad=0 strand=+ repeatMasking=none”

b.  Values in “Column B” is a value that correspond to values in Column A, for example  
    from Cell B1 which correspond to value in Cell A1: “ABCC2”  

Раздел 2. В образце файла "Лист2"

a.  In the Sheet2, the values from Sheet1 have been separated to clarify the data because  
    in Sheet1, everything is packed in one cell. 

b.  Column A represents “GENE”, which refers to the value in Column B in Sheet1, for example,  
    “ABCC2” from Section 1 of this article.

c.  Column B represents “refGENE”, an example of refGENE is “NM000392” which come from the  
    original name from “Sheet1”

d.  Column C represents “CHROMOSOME”, this is another value that was derived from Values in  
    Column A of Sheet1, for example, “chr10”

e.  Similar Idea, “EXON START” came from the original name in Column A of Sheet1, for  
    example “101542463”

f.  And “EXON END” came from the original name in Column A of Sheet1, for example “101542634”

Задача состоит в том, чтобы разработать программу, отвечающую следующим требованиям:

Требование 1: подсчет для каждого гена количества наблюдений за каждым refGene, например:

Пример таблицы refGENE COUNT NM000927 29 NM00078 32 NM00042 32 . . . . . .

введите здесь описание изображения

Примечание. Я делаю это с помощью СУММПРОИЗВ в Excel, однако я не знаю, как поместить все в простую таблицу.

Требование 2. Это требует сравнения значений в двух разных строках. Обратите внимание, что для этого требуется использовать исходное имя из «Лист1». Пожалуйста, не используйте отдельное значение от "Лист2". По сути, это запрос каждой строки, если Gene, Chromosome, EXONSTART, EXON END совпадают, затем удаляются строки с наименее частым refgene. Я объясню ниже.

В «Shee1» есть «Оригинальное имя» и «GENE»,

Шаг 1. Сравните, совпадают ли значения в столбце B. Например, при сравнении строки 1 и строки 2 есть ABCC2 и ABCC2. Это удовлетворяет условию, поэтому переходите к шагу 2, в противном случае продолжайте сравнивать GENE из разных строк.

Шаг 2. Сравните значения "chr" из разных строк, тот же пример из предыдущего шага. В строке 1 chr10, а в строке 2 chr10, так как они одинаковы, переходите к следующему шагу, иначе идите дальше.

Шаг 3: Теперь сравните "exon start" - число выглядит как 101542463 в строке 1, а число в строке 2 выглядит как 101544365, теперь они не совпадают, сохраните файл и двигайтесь дальше. Представьте, если числа совпадают, а затем продолжайте сравнивать «конец экзона», что является шагом 4.

Шаг 4. Предположим, что "начало экзона" в двух разных строках одинаково, затем сравните "конец экзона". Номер из строки 1 выглядит как 101542634, а номер «конца экзона» из строки 2 выглядит как 101544538. То же условие, что и выше, если они разные, оставьте файл в покое и продолжите сравнение следующего GENE.

Вот часть, которая требует внимания, если они одинаковы, это означает, что «GENE» одинаковы, «chr» одинаковы, «exon start» и «exon end» одинаковы. В итоге все то же самое, значит есть дублирующаяся строка. Теперь повторяющиеся строки будут удалены. Но каково условие удаления строки. Это вернет нас к задаче, которую мы решили из требования 1. Помните, что количество вхождений было подсчитано для всех refGENE? Вспомните 29 раз для NM000927, 32 раза для Nm00078. Строки «GENE», которые нужно удалить, содержат NM000927.

Но, пожалуйста, записывайте все удаленные данные и все оставшиеся данные, желательно с таблицей.


person Maggie Mi    schedule 06.05.2012    source источник
comment
Я не понимаю голосование -ve? Пользователь попытался объяснить вопрос как можно лучше. Отмена голосования. @Maggie Mi: 1) Sheet2 не имеет данных, как упоминалось в вашем сообщении? 2) Чтобы получить таблицу, показанную на изображении выше, вы всегда можете использовать сводную таблицу вместо Sumproduct(). :)   -  person Siddharth Rout    schedule 06.05.2012
comment
нет, я не могу всегда использовать это, потому что это только часть генов, вся часть будет состоять из более чем 20 000 данных, я не уверен, что это все еще уместно делать таким образом?   -  person Maggie Mi    schedule 07.05.2012
comment
и вам большое спасибо за ваш ответ, а также   -  person Maggie Mi    schedule 07.05.2012
comment
@MaggieMi: Это связано с другим вопросом, который вы задали? Также вы пропустили мой первый вопрос... 1) Sheet2 doesn't have any data as your post mentioned?   -  person Siddharth Rout    schedule 07.05.2012
comment
@SiddharthRout: подпишите... мой босс увидел, что я не могу этого сделать, а затем попросите кого-нибудь другого сделать мою работу... но все равно спасибо за вашу помощь.   -  person Maggie Mi    schedule 08.05.2012
comment
Похоже, вам лучше всего использовать регулярные выражения, чтобы разделить значения так, как вы хотите. Затем вы можете заставить программу делать то, что вам нравится, или, может быть, использовать сводную таблицу?   -  person TheFuzzyGiggler    schedule 04.06.2012


Ответы (1)


Я согласен с @Siddharth в отношении количества экземпляров, то есть сводной таблицы с метками строк = GENE, Σ значений = количество refGene.

Возможно, решением для «дубликатов» будет (по крайней мере, для начала) вставка строки вверху, выбор столбца A, сортировка и фильтрация/дополнительно/копирование в другое место = (скажем) C1/отметьте только уникальные записи/ОК. Это должно дать вам список, который на 35 строк меньше, чем вы начали.

Чтобы определить, какие строки являются дубликатами, скопируйте столбец A в другой столбец (скажем, D), замените > (ничего), затем введите =COUNTIF(D:D,D2) в E2 и дважды щелкните нижний правый угол ячейки. 1 = уникальный, все остальное - это количество экземпляров.

person pnuts    schedule 06.07.2012